The present invention relates to locating devices on a network, and more particularly to allowing a network device to locate other network devices on the same sub-network.
Some users of devices residing on a network find it desirable to locate all or a class of other devices on the network. For example, a user may wish to have a list of all the printers of a certain brand, along with information about those printers that are on the same sub-network. Typically, a network device would perform such a search using a network communications method (protocol) such as Simple Network Management Protocol (SNMP).
A network device typically searches for other devices on the network by sending (User Datagram Protocol) UDP messages to the sub-network and then waiting for particular responses from network devices that are listening on the same sub-network. The network device that sends out the request is typically called a management station and a device responding to such a request is typically referred to as a network agent.
UDP is a protocol that offers a limited amount of service when messages are exchanged between network devices in a network that uses the Internet Protocol (IP). A persistent problem is the loss of information packets due to congestion in the network or the receiving device, whether a management station or agent. Congestion essentially is the existence of interfering messages. One way this problem can occur, for example, is when responses from network agents arrive as a result of the UIDP broadcast message from the management station and they are initially received by the on-board Ethernet driver. This driver executes at a high priority intercepting every packet that arrives. If the packet has the expected frame type then the packet is ready to be delivered to the IP layer of the network stack. The IP task, which is running at a lower priority than the Ethernet driver, needs to accept as many packets as possible from the Ethernet driver. The total buffer area for the IP task is finite and the buffer for the Ethernet driver is also finite. Available buffer space depends on how fast the application task that is executing UDP routines can read and consume the data. Since both the IP task and the UDP level task run at a lower priority than the Ethernet Driver and total buffer space of the Ethernet driver is limited, the management station will not be able to read all the UDP based response packets that arrive at the on-board Ethernet driver. This approach of using UDP alone prevents an exhaustive and reliable search of the network since some request or response packets can be lost.
Service Location Protocol (SLP), described in the Internet Request For Comments document 2165 (RFC 2165), is one protocol that may be used instead of, or to supplement UDP based SNMP broadcast and responses. SLP provides a means to send in the broadcast request a list of devices that have already responded such that those who have already responded will not do so again. However, using SLP would result in slower and more cumbersome location of devices on the network because of it""s complexity and lack of specialization.
A second problem also exists when attempting to locate or find devices with no IP address. Prior approaches using IP multicasting require registration with the router and therefore do not provide a complete solution.
What is desired is a system for network device location that provides a faster and more exhaustive search which supplements the basic UDP broadcast and responses in order to reliably receive response packets from network agents or devices, and to uniquely identify those devices without relying on their IP address.
Accordingly, the present invention provides a faster, more exhaustive search and supplements the basic UDP broadcast and responses in order to receive and read more response packets from network agents. The present invention provides an approach to achieve device location discovery based on a MAC (media access channel) address even though the IP address is not known.
The invention employs a unicast (HTTP) request that is sent on a network to a device, such as a printer, with a known location and that device discovers other devices with unknown network locations. The device with the known location returns a web page to the user showing its status, with links to the other discovered devices. The user can then select the link to one of the newly discovered devices and view the web page of the selected device.
A device implementing this invention responds to an HTTP request for device discovery by spawning a device discovery task that broadcasts a SNMP over UDP based request out on a sub-network for devices to respond. When responses are received they are parsed and the device information such as network address, name, status, version and model is added to a list of discovered devices. Any responses from devices outside a specified class of devices, such as those not of a certain brand, are disregarded. The task waits for the responses until a specified amount of time has expired.
Then a device location protocol (DLP) over UDP broadcast request is sent out that includes a list of devices, such as printers, that have responded. The request is that only devices not on the list respond. Responses are then parsed and the responding device""s network address is added to the list of responding devices. This process is repeated until there are no more responses.
The management station may use unicast SNMP requests to the devices in the list to learn additional information about those devices which have an assigned IP address. The data from the linked list is then copied into a (Hypertext Markup Language) HTML buffer to be sent to the HTTP client that sent the original request.
These aspects, advantages, and other novel features of the present invention are apparent from the following detailed description when read in conjunction with the appended claims and attached drawings.